SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


CREATE PROCEDURE [dbo].[LIQBonificacionPorUbicacion]
@Agente INT,
@Servicio INT,
@Plaza INT,
@Resultado DECIMAL(18,4) OUTPUT,
@idLiquidacion INT,
@DiasALiquidar INT,
@DiasDelPeriodo INT
 AS 

SET NOCOUNT ON
SET DATEFORMAT dmy

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- NO SE UTILIZA AL 18/11/2005
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

DECLARE @ubicacionOrig INT
DECLARE @grupo INT
DECLARE @sueldoBasico DECIMAL(18,4)
DECLARE @BonificacionPorUbicacion DECIMAL(18,4)
DECLARE @Afiliacion INT
DECLARE @Organizacion INT
DECLARE @SituacionRevista INT
DECLARE @horas INT
DECLARE @regimensalarial INT
DECLARE @NroError INT
DECLARE @SubOrganizacion INT
DECLARE @CabeceraDeLiquidacion INT

SELECT @NroError = 0

SELECT @ubicacionOrig = ubicacionOrig FROM tb_ServiciosAgentes WHERE idservicioAgente = @Servicio
SELECT @Grupo = zona FROM tb_SubOrganizaciones WHERE org = @ubicacionOrig
SELECT @SueldoBasico=MontoHaberes FROM tb_RegistroDeLiquidaciones WHERE liquidacion = @idLiquidacion and Concepto = 4 and Servicio = @Servicio --Sueldo Basico

SELECT @BonificacionPorUbicacion =
case @grupo 
when 2 then  (@SueldoBasico * 20) / 100
when 3 then (@SueldoBasico * 40) / 100
when 4 then (@SueldoBasico * 60) / 100
when 5 then (@SueldoBasico * 80) / 100
when 6 then @SueldoBasico
else 0
end

SELECT @Afiliacion = idAfiliacion FROM tb_Afiliaciones WHERE idAgente = @Agente
SELECT @horas= horas, @regimensalarial = regimensalarial, @SubOrganizacion = SubOrganizacion FROM tb_Plazas WHERE idPlaza = @Plaza
SELECT @Organizacion = ubicacionOrig, @SituacionRevista = SituacionRevista FROM tb_ServiciosAgentes WHERE idservicioAgente =  @Servicio

If (SELECT OrganizacionLiquidadora FROM tb_SubOrganizaciones WHERE idSubOrganizacion = @SubOrganizacion) Is Not Null
	SELECT @Organizacion = OrganizacionLiquidadora FROM tb_SubOrganizaciones WHERE idSubOrganizacion = @SubOrganizacion

IF @BonificacionPorUbicacion > 0
BEGIN
 	INSERT INTO tb_RegistroDeLiquidaciones (AfectadosPorAjuste, Afiliacion, Agente, Ajuste, Cantidad, Cargosalarial, Concepto, Descripcion, DescuentoExterno, Desde, Dias, Embargo, Hasta, Horas, LegajoSalarial, Liquidacion, MontoDescuento, MontoHaberes, Organizacion, Reclamado, Servicio, SituacionRevista, DiasLiquidados, SubOrganizacion)
	VALUES (null, @Afiliacion, @Agente, null, 1, null, 6, null, null, null, null, null, null, @horas, 0, @idLiquidacion, 0, @BonificacionPorUbicacion, @Organizacion, null, @Servicio, @SituacionRevista, @diasALiquidar, @SubOrganizacion)
	
	SELECT @NroError = @@ERROR
	
	IF @NroError <> 0
	BEGIN
		SELECT @CabeceraDeLiquidacion = IdCabeceraLiquidacion FROM tb_Liquidaciones WHERE IdLiquidacion = @IdLiquidacion

		INSERT INTO tb_ErroresLiquidacion (Agente, Concepto, Diagnostico, Fecha, Liquidacion, Organizacion, Servicio, CabeceraDeLiquidacion, NumeroDeError) VALUES
		(@Agente, 6, CONVERT(VARCHAR,@NroError), GETDATE(), @idLiquidacion, @Organizacion, @Servicio, @CabeceraDeLiquidacion, @NroError)
	END
END
GO
